<?php

$bolGDesdeAjax = true;
require_once(dirname(__FILE__) . "/../index.php");

global $strGPath;
require_once("$strGPath/config_otro.ini.php");

require_once(BaseConfig::LoadClass('vars.class.php'                     ));
require_once(BaseConfig::LoadClass('sesion.class.php'                   ));
require_once(BaseConfig::LoadClass('template.class.php'                 ));
require_once(BaseConfig::LoadClass('usuario.class.php'                  ));
require_once(BaseConfig::LoadClass('configuracion.class.php'            ));
require_once(BaseConfig::LoadClass('permiso.class.php'                  ));
require_once(BaseConfig::LoadClass('menu.class.php'                     ));
require_once(BaseConfig::LoadClass('pagina.class.php'                   ));
require_once(BaseConfig::LoadClass('menu_lateral.class.php'             ));
require_once(BaseConfig::LoadClass('sitio.class.php'                    ));
require_once(BaseConfig::LoadClass('sitio_local.class.php'              )); // Sitio_local debe ir despues de sitio Y de pagina

require_once(BaseConfig::LoadClass('sepomex.class.php'                  ));
require_once(BaseConfig::LoadClass('cotizacion_qualitas.class.php'      ));
require_once(BaseConfig::LoadClass('cotizador_qualitas.class.php'       ));
require_once(BaseConfig::LoadClass('cotizacion_ana.class.php'           ));
require_once(BaseConfig::LoadClass('cotizador_ana.class.php'            ));
require_once(BaseConfig::LoadClass('cotizador_extendido.class.php'      ));
require_once(BaseConfig::LoadClass('datos_cotizacion_qualitas.class.php'));

require_once(BaseConfig::LoadClass('datos_cotizacion.class.php'         ));
require_once(BaseConfig::LoadClass('cotizacion.class.php'               ));


$oConfiguracion = new Config    ();
$oTemplate      = new Template  ();
$oSesion        = new Sesion    ();
$oSitio         = new SitioLocal();
$strPagina      = '';

error_reporting(0);

global $strGUsarTablaMarcasANA;
global $strGUsarTablaMarcasASD;
        
switch(Variables::GetPageOption()) {
  case 'CambioMarca':
    if($strGUsarTablaMarcasANA) {
      $strPagina = Variables::GetSelectByTable("cat_modelos_ana"      , "DISTINCT(modelo)", "modelo", "", "", "", "WHERE marca = '" . Variables::GetOption('marca') . "' ORDER BY modelo DESC");
    } else if($strGUsarTablaMarcasASD) {
      $strPagina = Variables::GetSelectByTable("cat_modelos_antartica", "DISTINCT(modelo)", "modelo", "", "", "", "WHERE marca = '" . Variables::GetOption('marca') . "' ORDER BY modelo DESC");
    } else {
      $strPagina = Variables::GetSelectByTable("cat_modelos_qualitas" , "DISTINCT(modelo)", "modelo", "", "", "", "WHERE marca = '" . Variables::GetOption('marca') . "' ORDER BY modelo DESC");
    }
    break;
  
  case 'CambioModelo':
    if($strGUsarTablaMarcasANA) {
      $strPagina = Variables::GetSelectByTable("cat_modelos_ana"      , "amis"     , "descripcion", "", "", "", "WHERE marca = '" . Variables::GetOption('marca') . "' AND modelo = '" . Variables::GetOption('modelo') . "' ORDER BY descripcion ASC");
    } else if($strGUsarTablaMarcasASD) {
      $strPagina = Variables::GetSelectByTable("cat_modelos_antartica", "id_modelo", "version"    , "", "", "", "WHERE marca = '" . Variables::GetOption('marca') . "' AND modelo = '" . Variables::GetOption('modelo') . "' ORDER BY version     ASC");
    } else {
      $strPagina = Variables::GetSelectByTable("cat_modelos_qualitas" , "amis"     , "version"    , "", "", "", "WHERE marca = '" . Variables::GetOption('marca') . "' AND modelo = '" . Variables::GetOption('modelo') . "' ORDER BY version     ASC");
    }
    break;
  
  case 'CotizacionQua':
    if(!Variables::GetOption('id_dato_cotizacion')) {
      die("{ \"error\":1, \"texto\":\"No se mando dato a cotizar (Q)\"}");
    }
    
    // Primero checamos si esta cotizacion ya tiene sus datos de Qualitas separados
    $oConecta    = new Conecta();
    $strConsulta = "SELECT * FROM cotizaciones_qualitas WHERE id_dato_cotizacion = " . Variables::GetOption('id_dato_cotizacion') . " AND tipo = " . Variables::GetOption('tipo_cot');
    $oConecta->Consulta($strConsulta);
    
    if($oConecta->Field('id_cotizacion')) {
      $oCotizacion = new CotizacionQualitas();
      $oCotizacion->LlenarObjeto($oConecta->GetColumn());
    } else {
      // No existe: Crear la llamada y esas cosas
      $oDatosCot   = new DatosCotizacionQualitas(Variables::GetOption('id_dato_cotizacion'));
      $oCotizacion = CotizadorQualitas::CotizarDesdeObjetoQualitas($oDatosCot, Variables::GetOption('tipo_cot'));
    }
    
    $arrParams = unserialize($oCotizacion->strArrDatos);
    
    if($arrParams["error"]) {
      $strPagina  = "{ \"error\":1, \"texto\": \"{$arrParams["error"]}\" }";
    } else {
      $strPagina  = "{";
      $strPagina .= "\"error\":0, ";
      $strPagina .= "\"prima_total\": "   . ($arrParams["primas" ]   ["primatotal"] - 0) . ", ";
      $strPagina .= "\"primer_pago\": "   . ($arrParams["recibos"][1]["primatotal"] - 0) . ", ";
      $strPagina .= "\"pagos_despues\": " . ($arrParams["recibos"][2]["primatotal"] - 0) . "  ";
      $strPagina .= "}";
    }
    
    break;
    
  case 'CotizacionAna':
    if(!Variables::GetOption('id_dato_cotizacion')) {
      die("{ \"error\":1, \"texto\":\"No se mando dato a cotizar (Q)\"}");
    }
    
    // Primero checamos si esta cotizacion ya tiene sus datos de Qualitas separados
    $oConecta    = new Conecta();
    $strConsulta = "SELECT * FROM cotizaciones_ana WHERE id_dato_cotizacion = " . Variables::GetOption('id_dato_cotizacion') . " AND tipo = " . Variables::GetOption('tipo_cot');
    $oConecta->Consulta($strConsulta);
    
    if($oConecta->Field('id_cotizacion')) {
//    if(0) {
      $oCotizacion = new CotizacionAna();
      $oCotizacion->LlenarObjeto($oConecta->GetColumn());
    } else {
      // No existe: Crear la llamada y esas cosas
      $oDatosCot   = new DatosCotizacionQualitas(Variables::GetOption('id_dato_cotizacion'));
      $oCotizacion = CotizadorAna::CotizarDesdeObjetoQualitas($oDatosCot, Variables::GetOption('tipo_cot'));
    }
    
    $arrParams = unserialize($oCotizacion->strArrDatos);
    
    if($arrParams["error"]) {
      $strPagina  = "{ \"error\":1, \"texto\": \"{$arrParams["error"]}\" }";
    } else {
      $strPagina  = "{";
      $strPagina .= "\"error\":0, ";
      /*
      $strPagina .= "\"prima_total\": "   . ($arrParams["primas" ]   ["primatotal"] - 0) . ", ";
      $strPagina .= "\"primer_pago\": "   . ($arrParams["recibos"][1]["primatotal"] - 0) . ", ";
      $strPagina .= "\"pagos_despues\": " . ($arrParams["recibos"][2]["primatotal"] - 0) . "  ";
       */
      $strPagina .= "\"prima_total\": "   . ($arrParams["primas" ]   ["primatotal"] - 0) . ", ";
      $strPagina .= "\"primer_pago\": "   . ($arrParams["primas" ]   ["primatotal"] - 0) . ", ";
      $strPagina .= "\"pagos_despues\": " . (0) . "  ";
      
      $strPagina .= "}";
    }
    
    break;
    
  case 'CotizacionAig':
    $oConecta    = new Conecta();
    $strConsulta = "SELECT id_cotizacion, serialized_data FROM cotizaciones WHERE id_dato_cotizacion = (SELECT id_dato_cotizacion FROM datos_cotizacion WHERE id_cotizacion_qualitas = " . Variables::GetOption('id_dato_cotizacion') . ")";
    $oConecta->Consulta($strConsulta);
    
    if($oConecta->Field('id_cotizacion')) {
      $intIdCotizaBeca = $oConecta->Field('id_cotizacion');
      
      // Checar si existe algun error: Si es asi, mandarlo
      $arrDatos = unserialize($oConecta->Field('serialized_data'));
      error_reporting(0);
      if($arrDatos["Table1"]["ErrorId"]) {
        $strPagina  = "<b>Error ({$arrDatos["Table1"]["ErrorId"]})</b><br />";
        $strPagina .= "<span style='white-space:normal'><b>{$arrDatos["Table1"]["ErrorDesc"]}</b></span>";
        die("{ \"error\":1, \"texto\":\"$strPagina\"}");
      }
    } else {
      $oDatosCot           = new DatosCotizacion();
      $oDatosCot->ObtenerDesdeObjetoQualitas(Variables::GetOption('id_dato_cotizacion'));
      $_POST["id_dato_cotizacion"] = $oDatosCot->intIdDatoCotizacion;
      $oCotizacion         = new Cotizaciones();
      $_POST["paso"      ] = 2;
      $_POST["via_ajax_2"] = 1;
      $_POST["datos"     ] = $oDatosCot->ObtenerArregloDatos();
      $intIdCotizaBeca     = $oCotizacion->GenerarCotizador();
      if($intIdCotizaBeca - 0) {
        
      } else {
        die("{ \"error\":1, \"texto\":\"$intIdCotizaBeca\"}");
      }
    }
    $strConsulta = "SELECT * FROM precios_cotiza WHERE id_cotizacion = $intIdCotizaBeca";
    $oConecta->Consulta($strConsulta);
    $intOcultarPagoDespues = 1;
    $strPagina = "{";
    while(!$oConecta->EOF) {
      $strNombre  = $oConecta->Field('nombre');
      $strPagina .= "\"{$strNombre}_precio\"      : " . $oConecta->Field('precio'       ) . ", ";
      $strPagina .= "\"{$strNombre}_primer_pago\" : " . $oConecta->Field('primer_pago'  ) . ", ";
      $strPagina .= "\"{$strNombre}_pago_despues\": " . $oConecta->Field('pagos_despues') . ", ";
      if($oConecta->Field('pagos_despues') - 0) {
        $intOcultarPagoDespues = 0;
      }
      $oConecta->MoveNext();
    }
    $strPagina .= "\"id_cot_beca\": $intIdCotizaBeca, ";
    $strPagina .= "\"OcultarPagoDespues\": $intOcultarPagoDespues ";
    $strPagina .= "}";
    
    break;
    
  case 'InfoCot':
    if(!Variables::GetOption('id_dato_cotizacion')) {
      die("{ \"error\":1, \"texto\":\"No se mando dato a cotizar (Q)\"}");
    }
    if(!Variables::GetOption('aseg')) {
      die("{ \"error\":1, \"texto\":\"No se mando Aseguradora (Q)\"}");
    }
    
    if(Variables::GetOption('aseg') == "aig") {
      $oConecta    = new Conecta();
      $strConsulta = "SELECT id_cotizacion, serialized_data FROM cotizaciones WHERE id_dato_cotizacion = (SELECT id_dato_cotizacion FROM datos_cotizacion WHERE id_cotizacion_qualitas = " . Variables::GetOption('id_dato_cotizacion') . ")";
      $oConecta->Consulta($strConsulta);
      $arrDatos = unserialize($oConecta->Field('serialized_data'));

      if($oConecta->Field('id_cotizacion')) {
        $strRes  = "";
        $strRes .= "<table class='TablaReportes'>";
        $strRes .= "<tr>";
        $strRes .= "<th colspan='2'>Paquete: " . Variables::GetOption('tipo_cotiza_nom') . "</th>";
        $strRes .= "</tr>";

        Variables::__AlternarModifier(0);
        foreach($arrDatos["Coberturas"] as $arrInfoImportes) {
          if($arrInfoImportes["sn_Paq_" . Variables::GetOption('tipo_cotiza_nom')] == "true") {
            if(strtoupper(trim($arrInfoImportes["txt_desc_cobertura"])) == strtoupper("Equipo Especial:")) continue;
            if(strtoupper(trim($arrInfoImportes["txt_desc_cobertura"])) == strtoupper("Adaptaciones y conversiones:")) continue;
            $strRes .= "<tr " . Variables::AlternarConClase() . ">";
            $strRes .= "<td>" . $arrInfoImportes["txt_desc_cobertura"] . "</td>";
            $strRes .= "<td>SI</td>";
            $strRes .= "</tr>";
          }
        }

        $strRes .= "<tr><th colspan='2'><hr /></th></tr>";
        Variables::__AlternarModifier(0);
        foreach($arrDatos["Importes"] as $arrInfoImportes) {
          if(($arrInfoImportes["imp_Pq_" . Variables::GetOption('tipo_cotiza_nom')] - 0) != 0) {
            $strRes .= "<tr " . Variables::AlternarConClase() . ">";
            $strRes .= "<td>" . $arrInfoImportes["txt_Importe"] . "</td>";
            $strRes .= "<td class='AlinearDerecha'>" . Variables::FormatoCurrency($arrInfoImportes["imp_Pq_" . Variables::GetOption('tipo_cotiza_nom')]) . "</td>";
            $strRes .= "</tr>";
          }
        }

        $strRes .= "</table>";

        die($strRes);
      } else {
        die("No se encuentra info");
      }
    }
    
    if(Variables::GetOption('aseg') == "ana") {
      $strTabla = "cotizaciones_ana";
    } else {
      $strTabla = "cotizaciones_qualitas";
    }
    
    // Primero checamos si esta cotizacion ya tiene sus datos de Qualitas separados
    $oConecta    = new Conecta();
    $strConsulta = "SELECT * FROM $strTabla WHERE id_dato_cotizacion = " . Variables::GetOption('id_dato_cotizacion') . " AND tipo = " . Variables::GetOption('tipo_cot');
    $oConecta->Consulta($strConsulta);
    
    if($oConecta->Field('id_cotizacion')) {
      $arrDatos = unserialize($oConecta->Field("arr_datos"));
    } else {
      die("{ \"error\":1, \"texto\":\"No hay datos para esta cotizacion\"}");
    }
    
    $strPagina .= "<table>";
    
    if(Variables::GetOption('aseg') == 'ana') {
      $arrTiposCot[1] = "Amplia"    ;
      $arrTiposCot[2] = "Lim-Plus"  ;
      $arrTiposCot[3] = "Limitada";
      $arrTiposCot[4] = "Resp. Civil";
    } else {
      $arrTiposCot[1] = "Amplia"     ;
      $arrTiposCot[2] = "Plus"       ;
      $arrTiposCot[3] = "Limitada"   ;
      $arrTiposCot[4] = "Resp. Civil";
    }
    
    $strTipoCot = $arrTiposCot[Variables::GetOption('tipo_cot')];

    $strPagina .= "<tr><td><table width='100%' class='TablaReportes'>";
    $strPagina .= "<tr><th colspan='2'>Primas $strTipoCot</th></tr>";

    $strPagina .= "<tr " . Variables::AlternarConClase() . ">";
    $strPagina .= "<td>Prima Neta</td>";
    $strPagina .= "<td class='ClaseCurrency'>{$arrDatos["primas"]["primaneta"]}</td>";
    $strPagina .= "</tr>";

    $strPagina .= "<tr " . Variables::AlternarConClase() . ">";
    $strPagina .= "<td>Derecho</td>";
    $strPagina .= "<td class='ClaseCurrency'>{$arrDatos["primas"]["derecho"]}</td>";
    $strPagina .= "</tr>";

    $strPagina .= "<tr " . Variables::AlternarConClase() . ">";
    $strPagina .= "<td>Recargo</td>";
    $strPagina .= "<td class='ClaseCurrency'>{$arrDatos["primas"]["recargo"]}</td>";
    $strPagina .= "</tr>";

    $strPagina .= "<tr " . Variables::AlternarConClase() . ">";
    $strPagina .= "<td>Impuesto</td>";
    $strPagina .= "<td class='ClaseCurrency'>{$arrDatos["primas"]["impuesto"]}</td>";
    $strPagina .= "</tr>";

    $strPagina .= "<tr " . Variables::AlternarConClase() . ">";
    $strPagina .= "<td>Prima Total</td>";
    $strPagina .= "<td class='ClaseCurrency'>{$arrDatos["primas"]["primatotal"]}</td>";
    $strPagina .= "</tr>";

    $strPagina .= "</table></td></tr>";
    $strPagina .= "<tr><td><table width='100%' class='TablaReportes'>";
    
    switch(Variables::GetOption('aseg')) {
      case 'ana':
        $strPagina .= "<tr><th colspan='6'>Coberturas</th></tr>";
        foreach($arrDatos["coberturas"] as $arrCobertura) {
          $strPagina .= "<tr " . Variables::AlternarConClase() . ">";
          $strPagina .= "<td>" . sprintf("%02d", $arrCobertura["id"]) . "</td>";
          $strPagina .= "<td>{$arrCobertura["desc"]}</td>";
          $strPagina .= "<td>{$arrCobertura["sa"]}</td>";
//          $strPagina .= "<td>{$arrCobertura["tipo"]}</td>";
//          $strPagina .= "<td>{$arrCobertura["ded"]}</td>";
          $strPagina .= "<td colspan='2'>{$arrCobertura["ded"]}</td>";
          if($arrCobertura["pma"] != "") {
            $strPagina .= "<td class='ClaseCurrency'>" . str_replace(",", "", $arrCobertura["pma"]) . "</td>";
          } else {
            $strPagina .= "<td>&nbsp;</td>";
          }
          $strPagina .= "</tr>";
        }
        break;
      
      default:
        $strPagina .= "<tr><th colspan='6'>Coberturas</th></tr>";
        $strPagina .= "<tr>";
        $strPagina .= "<th colspan='2'>&nbsp;</th>";
        $strPagina .= "<th>Tipo Suma</th>";
        $strPagina .= "<th>Suma Asegurada</th>";
        $strPagina .= "<th>Deducible</th>";
        $strPagina .= "<th>Prima</th>";
        $strPagina .= "</tr>";
        foreach($arrDatos["coberturas"] as $intTipo => $arrCobertura) {
          $strPagina .= "<tr " . Variables::AlternarConClase() . ">";
          $strPagina .= "<td>" . sprintf("%02d", $intTipo) . "</td>";
          $strPagina .= "<td>" . utf8_encode(Variables::GetValueByTable("cat_coberturas_qualitas", "id_cobertura", "nombre", $intTipo - 0)) . "</td>";
          $strPagina .= "<td>" . Variables::GetValueByTable("cat_tipo_suma_qualitas", "id_tipo_suma", "nombre", $arrCobertura["tiposuma"] - 0) . "</td>";
          $strPagina .= "<td class='ClaseCurrency'>{$arrCobertura["sumaasegurada"]}</td>";
          if($arrCobertura["deducible"] - 0) {
            $strPagina .= "<td class='AlinearDerecha'>" . ($arrCobertura["deducible"] - 0) . "%</td>";
          } else {
            $strPagina .= "<td>&nbsp;</td>";
          }
          $strPagina .= "<td class='ClaseCurrency'>{$arrCobertura["prima"]}</td>";
          $strPagina .= "</tr>";
        }
//        prent_r($arrDatos);
        break;
    }
    

    
    $strPagina .= "</table></td></tr>";
    $strPagina .= "</table>";
    
    break;
    
  default:
    $strPagina = "Error: Opcion no reconocida";
}

die($strPagina);

?>